<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>32 Map</title>
</head>

<body>
    <h2>2.14.Map</h2>
    <p>

        ES6提供了Map 数据结构。它类似于对象, 也是键值对的集合。但是“键”的范围不限于字符串, 各种类型的值 (包括对象) 都可以当作键。Map也实现了iterator接口, 所以可以使用『扩展运算符』和「
        for....of...』进行遍历。Map的属性和方法:

    </p>
    <ul>

        <li>size 返回Map的元素个数</li>
        <li>set 增加一个新元素, 返回当前Map</li>
        <li>get 返回键名对象的键值</li>
        <li>has 检测Map中是否包含某个元素, 返回boolean值</li>
        <li>clear 清空集合, 返回undefined</li>

    </ul>
    <script>
        let m = new Map();

        // 添加元素
        m.set(1, 1);
        m.set('change', function () {
            console.log('sss');
        });
        let key = {
            school: 'ATGUIGU'
        };
        m.set(key, ['A', 'B', 'C']);
        console.log(m);

        //获取元素
        console.log(m.size);

        // 删除

        //获取元素
        console.log(m.get('change'));
        console.log(m.get(key));

        for (let [k, v] of m) {
            console.log(k, v);
        }

        for (let item of m) {
            console.log(item);
        }

    </script>
</body>

</html>